package Demo1;

public class test {
      public static class ListNode {
      int val;
      ListNode next;
      ListNode() {}
      ListNode(int val) { this.val = val; }
      ListNode(int val, ListNode next) { this.val = val; this.next = next; }
  }


        public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {
            ListNode cur1=l1;
            ListNode cur2=l2;
            ListNode head=new ListNode(-1);
            ListNode cur=head;
            int tmp=0;
            while(cur1!=null&&cur2!=null){
                tmp+=cur1.val+cur2.val;
                ListNode next=new ListNode(tmp%10);
                tmp/=10;
                cur.next=next;
                cur=cur.next;
                cur1=cur1.next;
                cur2=cur2.next;
            }
            while(cur1!=null){
                tmp+=cur1.val;
                ListNode next=new ListNode(tmp%10);
                tmp/=10;
                cur.next=next;
                cur=cur.next;
                cur1=cur1.next;
            }

            while(cur2!=null){
                tmp+=cur2.val;
                ListNode next=new ListNode(tmp%10);
                tmp/=10;
                cur=cur.next;
                cur.next=next;
                cur2=cur2.next;
            }
            if(tmp==1){
                ListNode next=new ListNode(1);
                cur.next=next;
            }
            return head.next;
        }


    public static void main(String[] args) {
ListNode head=new ListNode(2);
ListNode next1=new ListNode(4);
ListNode next2=new ListNode(3);
head.next=next1;
next1.next=next2;

        ListNode head2=new ListNode(5);
        ListNode next3=new ListNode(6);
        ListNode next4=new ListNode(1);
        head2.next=next3;
        next3.next=next4;
 ListNode ret=addTwoNumbers(head,head2);

while(ret!=null){
    System.out.print(ret.val+" ");
    ret=ret.next;
}

    }
}
